package com.qiaoba.module.job.converter;

import com.qiaoba.api.job.entity.dto.SysJobDTO;
import com.qiaoba.api.job.entity.vo.SysJobVO;
import com.qiaoba.module.job.entity.SysJob;
import com.qiaoba.module.job.util.CronUtil;

/**
 * 定时任务 类型转换
 *
 * @author ailanyin
 * @date 2023-09-19 22:43:52
 */
public class SysJobConverter {

    public static SysJob dto2Entity(SysJobDTO dto) {
        SysJob sysJob = new SysJob();
        sysJob.setJobId(dto.getJobId());
        sysJob.setJobName(dto.getJobName());
        sysJob.setJobGroup(dto.getJobGroup());
        sysJob.setInvokeTarget(dto.getInvokeTarget());
        sysJob.setCronExpression(dto.getCronExpression());
        sysJob.setMisfirePolicy(dto.getMisfirePolicy());
        sysJob.setConcurrent(dto.getConcurrent());
        sysJob.setStatus(dto.getStatus());
        sysJob.setRemark(dto.getRemark());
        return sysJob;
    }

    public static SysJobVO domain2VO(SysJob sysJob) {
        SysJobVO sysJobVO = new SysJobVO();
        sysJobVO.setCronExpression(sysJob.getCronExpression());
        sysJobVO.setMisfirePolicy(sysJob.getMisfirePolicy());
        sysJobVO.setConcurrent(sysJob.getConcurrent());
        sysJobVO.setStatus(sysJob.getStatus());
        sysJobVO.setJobId(sysJob.getJobId());
        sysJobVO.setJobName(sysJob.getJobName());
        sysJobVO.setJobGroup(sysJob.getJobGroup());
        sysJobVO.setInvokeTarget(sysJob.getInvokeTarget());
        sysJobVO.setCreateTime(sysJob.getCreateTime());
        sysJobVO.setNextValidTime(CronUtil.getNextExecution(sysJob.getCronExpression()));
        return sysJobVO;
    }

}
